#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;
int n = 0;
int nums[1000];

int re_nums(){
    int book[1000]; //标记数nums[i]的逆序数
    int max=0;
    memset(book, -1, sizeof(book)); //-1表示没有这个数
    for(int i=0;i<n;i++){
        book[ nums[i] ]=0;  //表示有这个数，从0开始数
        max = max<nums[i]?nums[i]:max;
        for(int j=i-1;j>=0;j--){
            if(nums[j]>nums[i]) //开始数这个数之前有几个比他大的
                book[ nums[i] ]++;
        }
    }
    int ans=0;
    for(int i=0;i<=max;i++){    //序列化打印
        if(book[i]==-1)
            continue;
        ans+=book[i];   //以及统计逆序数
        cout<<book[i];
        if(i!=max)
            cout<<' ';
    }
    cout<<endl;
    return ans;
}

int main(int argc, char** argv){
    cin>>n;
    for(int i=0;i<n;i++)
        cin>>nums[i];
    cout<<re_nums()<<endl;
    return 0;
}